package com.zhouxin.customview.utils;

import android.content.Context;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.util.TypedValue;

/**
 * Copyright©
 * FileName: DensityUtil
 * Author: ZhouXin
 * Description: 密度转换工具类
 * --Tip:
 * Resources.getSystem()：可以拿到和系统相关的Resources（比如密度信息）
 * Context.getResources()：可以拿到和软件相关的Resources（比如String和Color）
 * 所以这里用Resources.getSystem()，避免了传递Context
 */
public class DensityUtil {
    private static final DisplayMetrics displayMetrics =  Resources.getSystem().getDisplayMetrics();

    /**
     * dip转像素
     * @param value: Float 表示多少dp
     * @return px: Float
     */
    public static float dp2px(float value) {
        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,value, displayMetrics);
    }

    /**
     * 像素转dip
     * @param value: Float 表示多少像素
     * @return dp: Float
     */
    public static float px2dp(float value) {
        return value / displayMetrics.density;
    }

    /**
     * sp转像素
     * @param value: Float 表示多少sp
     * @return px: Float
     */
    public static float sp2px(float value) {
        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,value,displayMetrics);
    }

    /**
     * 像素转sp
     * @param value: Float 表示多少像素
     * @return sp: Float
     */
    public static float px2sp(float value) {
        return value / displayMetrics.scaledDensity;
    }
}

